package utils;

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

import android.graphics.Bitmap;
import android.view.View;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;

public class ImageLoadOptions {

	private static Map<String, Bitmap> mapBit = new HashMap<String, Bitmap>();

	
	public static DisplayImageOptions view_pic() {
		DisplayImageOptions options = new DisplayImageOptions.Builder()

		.cacheInMemory(false)
				// 设置下载的图片是否缓存在内存中
				.cacheOnDisk(true)
				// 设置下载的图片是否缓存在SD卡中
				.considerExifParams(true)
				.imageScaleType(ImageScaleType.EXACTLY)// 设置图片以如何的编码方式显示
				.bitmapConfig(Bitmap.Config.ARGB_4444)// 设置图片的解码类型
				// .decodingOptions(android.graphics.BitmapFactory.Options
				// decodingOptions)//设置图片的解码配置
				.considerExifParams(true)
				// 设置图片下载前的延迟
				// .delayBeforeLoading(int delayInMillis)//int
				// delayInMillis为你设置的延迟时间
				// 设置图片加入缓存前，对bitmap进行设置
				// 。preProcessor(BitmapProcessor preProcessor)
				.resetViewBeforeLoading(false)// 设置图片在下载前是否重置，复位
				// .displayer(new RoundedBitmapDisplayer(20))//是否设置为圆角，弧度为多少
				// s .displayer(new FadeInBitmapDisplayer(100))// 淡入
				.build();

		return options;
	}

	public static ImageLoadingListener getImageLoadingListener() {

		return new ImageLoadingListener() {

			@Override
			public void onLoadingStarted(String imageUri, View view) {
				// TODO Auto-generated method stub

			}

			@Override
			public void onLoadingFailed(String imageUri, View view,
					FailReason failReason) {
				// TODO Auto-generated method stub

			}

			@Override
			public void onLoadingComplete(String imageUri, View view,
					Bitmap loadedImage) {
				// TODO Auto-generated method stub
				mapBit.put(imageUri, loadedImage);

			}

			@Override
			public void onLoadingCancelled(String imageUri, View view) {
				// TODO Auto-generated method stub

			}
		};

	}

	public static void clearMap() {
		// TODO Auto-generated method stub

		for (Entry<String, Bitmap> entry : mapBit.entrySet()) {

			Bitmap bmBitmap = entry.getValue();
			if (!bmBitmap.isRecycled()) {
				bmBitmap.recycle();
			}
			// System.out.println("key= " + entry.getKey() + " and value= " +
			// entry.getValue());
		}

		mapBit.clear();
		
	}

}